﻿//This class taken from: http://stackoverflow.com/questions/10433461/excessive-xaml-markup-size-in-silverlight-richtextbox

using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Text.RegularExpressions;
using System.Collections.Generic;

namespace SilverlightTextEditor
{
    public static class RichTextBoxExtensions
    {
        // <summary>
        /// Removes any xml tag with the prefix given from a string
        /// </summary>
        /// <param name="XMLString"></param>
        /// <param name="TagPrefix"></param>
        /// <returns></returns>
        public static string RemoveXMLAttributesFromNode(this string XMLString, string prefix)
        {
            //Match [Prefix][any number of Not =][=]["][any number of Not "]["][ ] <-must have space!!!
            string replace = prefix + "[^\\=]*=\"[^\"]*\" ";
            return Regex.Replace(XMLString, replace, string.Empty);
        }
        /// <summary>
        /// Removes any xml tag with prefixed by an element in unWanted
        /// </summary>
        /// <param name="XMLString"></param>
        /// <param name="TagPrefix"></param>
        /// <returns></returns>
        public static string RemoveXMLAttributesFromNode(this string XMLString, List<string> unWanted)
        {

            foreach (string prefix in unWanted)
            {
                //Match [Prefix][any number of Not =][=]["][any number of Not "]["][ ] <-must have space!!!
                string replace = prefix + "[^\\=]*=\"[^\"]*\" ";
                XMLString = Regex.Replace(XMLString, replace, string.Empty);
            }
            return XMLString;
        }
    }
}